#ifndef __CFICHA_H__
#define __CFICHA_H__

#include "GeneralInclude.h"

typedef enum FichaHeading
{
	FICHA_HEADING_LEFT		= 0,
    FICHA_HEADING_RIGHT		= 1,
    FICHA_HEADING_UP			= 2,
    FICHA_HEADING_DOWN		= 3,
} FichaHeading;

#define FICHA_UP_ROTATION		0.0
#define FICHA_LEFT_ROTATION		(vPos)90.0
#define FICHA_RIGHT_ROTATION	(vPos)-90.0
#define FICHA_DOWN_ROTATION		(vPos)180.0

class CFicha
{
protected:
    I2DNode FichaGraph;
    u32 x;
    u32 y;
    u32 IDColor;
    FichaHeading Heading;
    std::vector<CColor> ActiveColors;
public:
    CFicha();
    virtual ~CFicha();

    I2DNode *GetFichaGraph()    {   return &FichaGraph;    }
    void SetFichaPos(u32 nx,u32 ny);
    u32 GetPosX()   {   return x;   }
    u32 GetPosY()   {   return y;   }
    vector2du32 GetPos()	{	return vector2du32(x,y);	}
    void ChangeIDColor(u32 newidcolor);
    u32 GetIDColor()	{	return IDColor;	}
    inline FichaHeading GetFichaHeading()	{	return Heading;	}
    void SetFichaHeading(FichaHeading newHeading);
};

#endif
